package cm.ph.shopping.facade.order.service;

import cm.ph.shopping.facade.order.entity.PhMerchantOrder;
import cm.ph.shopping.facade.order.request.OrderRequest;
import cm.ph.shopping.facade.order.vo.QueryOrderDetailVo;
import com.ph.shopping.common.util.page.PageBean;
import com.ph.shopping.common.util.result.Result;

import cm.ph.shopping.facade.order.vo.PhMerchantOrderListVo;
import cm.ph.shopping.facade.order.vo.PhTradersPasswordForOrderVo;

/**
 * 商户进货订单接口
 * @project：phshopping-facade-order
 * @description: TODO 
 * @author lichao  
 * @date 2017年3月23日
 */
public interface IMerchantOrderService {

	/**
	 * 
	 * @description: 条件查询商户进货单(代理商供货单) 分页
	 * @param phMerchantOrderListVo
	 * @return
	 * @author lichao
	 * @date 2017年3月23日
	 */
	public Result getMerchantOrderList(PageBean pageBean, PhMerchantOrderListVo phMerchantOrderListVo) throws Exception;


	/**
	 * @param queryOrderDetailVo
	 * @return
	 * @description: 条件查询返回订单详情
	 * @author 舒豪
	 * @date 2017年3月23日
	 */
	QueryOrderDetailVo getOrderDetail(QueryOrderDetailVo queryOrderDetailVo);

	/**
	 * @param phMerchantOrder
	 * @return
     * @description: 修改物流费用
     * @author 舒豪
	 * @date 2017年3月27日
	 */
	Result updateLogistics(PhMerchantOrder phMerchantOrder);

    /**
     * @param phMerchantOrder
     * @return
     * @description: 修改物流信息
     * @author 舒豪
     * @date 2017年3月27日
     */
    Result updateLogisticsInfo(PhMerchantOrder phMerchantOrder);

	/**
	 * 新增商户订单
	 * @param merchantOrderRequest
	 * @return
	 */
	public Result addOrders(OrderRequest merchantOrderRequest);


	/***
     * 进货修改订单信息
     * @param phMerchantOrder
     * @return
     *
     */
	Result updateForShipping(PhMerchantOrder phMerchantOrder);

	/**
	 * 查询订单单条数据
	 * @param merchantOrders
	 * @return
	 *
	 */
	PhMerchantOrder findMerchantOrderByTarget(PhMerchantOrder merchantOrders);

	/**
	 * 验证支付密码方法
	 * @param merchantOrders
	 * @return
	 *@author yyg
	 */
	PhTradersPasswordForOrderVo checkTradersPassword(PhTradersPasswordForOrderVo passwordForOrderVo);

	/**
	 * 使用余额支付时修改订单状态的方法
	 * @param phMerchantOrder
	 * @return
	 *@author yyg
	 */
	int updateForOrderStatus(PhMerchantOrder phMerchantOrder);


}
